package desmontec.materiais


import desmontec.materiais.QuantidadeMateriais;
import grails.test.*

class QuantidadeMateriaisTestTests extends GrailsUnitTestCase {
    protected void setUp() {
        super.setUp()
    }

    protected void tearDown() {
        super.tearDown()
    }
	
	void testNullable() {
		def existingQuant = new QuantidadeMateriais()
		mockForConstraintsTests(QuantidadeMateriais, [ existingQuant ])
		
		//nullable tests
		def quant = new QuantidadeMateriais(dinamite: null, retardo: 5, espoletim: 6, espoleta: 7, cordelDet: 8, estopim: 9)
		assertFalse(quant.validate())
		assertEquals "nullable" , quant.errors["dinamite"]
		
		quant = new QuantidadeMateriais(dinamite: null, retardo: null, espoletim: null, espoleta: null, cordelDet: null, estopim: null)
		assertFalse(quant.validate())
		assertEquals "nullable" , quant.errors["dinamite"]
		assertEquals "nullable" , quant.errors["retardo"]
		assertEquals "nullable" , quant.errors["espoletim"]
		assertEquals "nullable" , quant.errors["espoleta"]
		assertEquals "nullable" , quant.errors["cordelDet"]
		assertEquals "nullable" , quant.errors["estopim"]
		
		//Should Pass
		quant = new QuantidadeMateriais(dinamite: 10, retardo: 5, espoletim: 6, espoleta: 7, cordelDet: 8, estopim: 9)
		assertTrue(quant.validate())
	}
	
	void testMin() {
		def existingQuant = new QuantidadeMateriais()
		mockForConstraintsTests(QuantidadeMateriais, [ existingQuant ])
		
		//min tests
		def quant = new QuantidadeMateriais(dinamite: 10, retardo: -5, espoletim: 6, espoleta: 7, cordelDet: 8, estopim: 9)
		assertFalse(quant.validate())
		assertEquals "min", quant.errors["retardo"]
		
		quant = new QuantidadeMateriais(dinamite: -9, retardo: -4, espoletim: -77, espoleta: -7, cordelDet: -98, estopim: -79)
		assertFalse(quant.validate())
		assertEquals "min" , quant.errors["dinamite"]
		assertEquals "min" , quant.errors["retardo"]
		assertEquals "min" , quant.errors["espoletim"]
		assertEquals "min" , quant.errors["espoleta"]
		assertEquals "min" , quant.errors["cordelDet"]
		assertEquals "min" , quant.errors["estopim"]

		//Should Pass
		quant = new QuantidadeMateriais(dinamite: 10, retardo: 5, espoletim: 6, espoleta: 7, cordelDet: 8, estopim: 9)
		assertTrue(quant.validate())
		
	}
}
